
#pragma once

#include "hge.h"
#include <vector>

using namespace std;

// The main hge pointer
extern HGE *hge;

// Commonly used textures
extern HTEXTURE guiBackground;
extern HTEXTURE leftArrow;
extern HTEXTURE rightArrow;

// Common sounds
extern HEFFECT menuSound;

// Constructor type function for hgeQuad
void InitQuad(hgeQuad &q, HTEXTURE tex = 0, DWORD color = -1);
// Sets the quad size
void SetQuadRect(hgeQuad &q, float x0 = 0, float y0 = 0, float x1 = 1, float y1 = 1);
// Sets the texture coordinates
void SetQuadTexCo(hgeQuad &q, float x0 = 0, float y0 = 0, float x1 = 1, float y1 = 1);

// Tile Sets
class TileSet
{
public:
	TileSet(const char *_filePath);
	HTEXTURE tex;
	char filePath[256];
	float imageSize, setSize;
};
extern std::vector<TileSet> tileSets;

// Keep track of tile sets
int GetTileSet(const char *filePath);
inline TileSet &GetTileSet(int index) { return tileSets[index]; }
